' ****** START INCLUDE RgbaPset(x%,y%,c&,a%b):::PUTSTRING(x%, y%, s$) ******
SUB RgbaPset(x%,y%,c&,a%b)
dim c$, r0%, g0%, b0%, r1%, g1%, b1%, a0%
c$ = RIGHT$("000000" + HEX$(POINT(x%,y%)), 6)
r0% = VAL("0x" + LEFT$(c$,2))
g0% = VAL("0x" + MID$(c$,3,2))
b0% = VAL("0x" + RIGHT$(c$,2))
c$ = RIGHT$("000000" + HEX$(c&), 6)
r1% = VAL("0x" + LEFT$(c$,2))
g1% = VAL("0x" + MID$(c$,3,2))
b1% = VAL("0x" + RIGHT$(c$,2))
a0% = 255 - a%b
PSET(x%,y%), _RGB( [{ (r0%*a0%)+(r1%*a%b) }/255], _
[{ (g0%*a0%)+(g1%*a%b) }/255], _
[{ (b0%*a0%)+(b1%*a%b) }/255] )
END SUB
SUB PUTSTRING(x%, y%, s$)
FOR c = 1 TO LEN(s$)
sc$ = MID$(s$, c, 1)
this$ = _GETCHR$(ASC(sc$))
FOR yi = 0 TO 7
FOR xi = 0 TO 7
x_pset% = x% + xi + (c-1)*8 : y_pset% = y% + yi
IF MID$(this$, (xi + yi*8) + 1, 1) = "X" AND BETWEEN(x_pset%, 0, _WIDTH-1) AND BETWEEN(y_pset%, 0, _HEIGHT-1) THEN PSET (x_pset%, y_pset%)
NEXT xi
NEXT yi
NEXT c
END SUB
' ****** END INCLUDE RgbaPset(x%,y%,c&,a%b):::PUTSTRING(x%, y%, s$) ******
SCREEN _NEWIMAGE(141, 51, 32)
Sub RgbaLine (x1%, y1%, x2%, y2%, c&, a%b)
xd% = ABS(x2% - x1%)
yd% = ABS(y2% - y1%)
IF xd% = 0 THEN
FOR i = MIN(y1%,y2%) to MAX(y1%,y2%): RgbaPset(x1%, i, c&, a%b) : NEXT i
ELSE
m# = yd%/xd%
c# = y2% - x2% * m# : IF c# = 0 THEN c# = y1% - x1% * m#
IF xd% >= yd% THEN FOR i = MIN(x1%,x2%) to MAX(x1%,x2%): RgbaPset(i, m# * i + c#, c&, a%b) : NEXT i
IF xd% < yd% THEN FOR i = MIN(y1%, y2%) to MAX(y1%,y2%): RgbaPset((i - c#)/m#, i, c&, a%b) : NEXT i
END IF
End Sub
FOR X = 140 TO 0 step -1
RgbaLine (X,0,X,25, _RGB(0,255,255), 255)
NEXT X
FOR X = 0 TO 140
RgbaLine (X,0,X,50, _RGB(255,255,255), 255-X)
NEXT X
FOR X = 0 TO 140
RgbaLine (X,20,X,30, _RGB(255,255,0), 100)
NEXT X
COLOR _RGB(0,0,0)
PUTSTRING (0,10, "ROCK AND ROLL !!!")